<?php
class ControladorUsuario {
   
    function getFunctionusuario($op){
        switch ($op) {
            case 'new':
                $this->nuevoUsuario();
                break;

            case 'list':
                $this->listaUsuario();
                break;
            
            case 'save':
                $this->guardarUsuario();
                break;

            case 'edit':
                $this->editarUsuario();
                break;
            
            case 'update':
                $this->actualizarUsuario();
                break;
            
            case 'del':
                $this->eliminarUsuario();
                break;
            
            case 'loadpre':
                $this->loadUsuario();
                break;
            
            case 'verificaDocumento':
                if($_REQUEST["directo"]=='yes'){
                    echo $this->verificaDocu($_REQUEST["doc"]);
                }
                break;
            
            case 'verificaUsuario':
                if($_REQUEST["directo"]=='yes'){
                    echo $this->verificaUsu($_REQUEST["usu"]);
                }
                break;
                
            default:
                echo "ERROR NO HAY CONTROLADOR PARA ESA OPCION";
                break;
        }
    }
    
    //OK
    function verificaUsu($doc){
        include_once 'modelo/modelo.usuario.php';
        $u  = new usuario();
        $rs = $u->verUsu($doc);
        if(is_null($rs)){
            return "";
        }else{
            //var_dump($rs[0][0]);
            if($rs[0][0]>0){
                return "<img src='images/png/error.png' alt='DUPLICADO!' title='DUPLICADO!'>";
            }else{
                return "";
            }
        }
    }    
    
    //OK
    function verificaDocu($doc){
//        include_once 'modelo/modelo.usuario.php';
//        $u  = new usuario();
//        $rs = $u->verDoc($doc);
//        if(is_null($rs)){
            return "null";
//        }else{
//            if($rs[0][0]>0){
//                return "<img src='images/png/error.png' alt='DUPLICADO!' title='DUPLICADO'>";
//            }
//        }
    }
    
    //OK
    function loadUsuario(){
        include_once 'modelo/modelo.usuario.php';
        
        $usuario = new usuario();
        $usuario->setId($_SESSION["uid"]);
        
        $usuario->getDatos(true);        
            $_SESSION["usuario"]=$usuario->getUsuario();
            $_SESSION["admin"]=$usuario->getTipoUsu();
            $_SESSION["tipo_usuario"]=$usuario->getTipoUsu();
    }
    
    //OK
    function verificarLogin(){
        include_once 'modelo/modelo.usuario.php';
        
        $usuario = new usuario();
        $usuario->setUsuario($_REQUEST["usuario"]);
        $usuario->setClave(md5($_REQUEST["clave"]));
        $existe = $usuario->verificarUsuario();       
        
       include_once 'vista/vista.index.php';
        if($existe){
            
            $_SESSION["op"]=2;
            $_SESSION["uid"]=$usuario->getId();
            $this->loadUsuario();
               
            bodyPart1();            
        }else{            
            login(" Datos incorrectos ");            
        }
        
    }
    
    function eliminarUsuario(){
        include_once 'modelo/modelo.usuario.php';
        include_once 'vista/vista.usuario.php';
        
        $u = new usuario();                
        $u->setId($_REQUEST["id"]);
        
        if($u->DeleteUsuario()){
            $msj = "<div id='alertzone' style='background-color:#c3d5fd;vertical-align:bottom;'> <img src='images/png/check.png' /> Se cambi&oacute; de estado correctamente!. </div>";
        }else{
            $msj = "<div id='alertzone' style='background-color:#fe9a9e;vertical-align:bottom;'> <img src='images/png/error.png' /> Ocurri&oacute; un error al cambiar de estado. </div>";
        }
        $this->listaUsuario($msj);
    }
    
    function actualizarUsuario(){
        include_once 'modelo/modelo.usuario.php';
        include_once 'vista/vista.usuario.php';
        
        $u = new usuario();
        $u->setId($_REQUEST["id"]);                                    
        
        $u->setUsuario($_REQUEST["usuario"]);
        
        if(strlen($_REQUEST["clave"])>20){
            $u->setClave($_REQUEST["clave"]);
        }else{
            $u->setClave(sha1($_REQUEST["clave"]));
        }        
        
        $u->setTipoUsu($_REQUEST["tu"]);    	

        if($u->ActUsuario()){
            if($u->getId()==$_SESSION["uid"]){
                $_SESSION["usuario"]=$u->getUsuario();
                $_SESSION["tipo"]=$u->getTipoUsu();
            }                        
            $msj = "<div id='alertzone' style='background-color:#c3d5fd;vertical-align:bottom;'> <img src='images/png/check.png' /> Se actualizo correctamente!. </div>";
        }else{
            $msj = "<div id='alertzone' style='background-color:#fe9a9e;vertical-align:bottom;'> <img src='images/png/error.png' /> Ocurrio un error al actualizar. </div>";
        }
        $this->listaUsuario($msj);
        
    }
    
    //OK
    function editarUsuario(){
        include_once 'modelo/modelo.usuario.php';
        include_once 'vista/vista.usuario.php';
        
        $u = new usuario();
        $u->setId($_REQUEST["id"]); 
        $u->getDatos();
        
        include_once 'controlador/controlador.tipousuario.php';
        $ctu = new ControladorTipoUsuario();
        $cbtu = $ctu->getFunction('combo');
        
        $cbs = array('tt'=>$cbtt, 'td'=> $cbtd, 'tu'=> $cbtu, 's'=>$cse);
        
        formulariousuario($u, $cbs);
        
    }
    
    
    function nuevoUsuario(){
        include_once 'vista/vista.usuario.php';  
        
        $cbtu = array('1'=>'Administrador', '2'=>'Usuario');
        $cbs = array('tu'=> $cbtu, 'to'=>$ctop);
        
        formulariousuario(false, $cbs);
    }
    
    function guardarUsuario(){
        include_once 'modelo/modelo.usuario.php';
        include_once 'vista/vista.usuario.php';
        
        $u = new usuario();
        
        $u->setUsuario($_REQUEST["usuario"]);
        $u->setClave(sha1($_REQUEST["clave"]));
        
        $u->setNombre($_REQUEST["nombre"]);
        $u->setApePat($_REQUEST["apepat"]);
        $u->setApeMat($_REQUEST["apemat"]);
        
        $u->setTitulo($_REQUEST["tt"]);
        
        $u->setTipoUsu($_REQUEST["tu"]);
        
        $u->setSede($_REQUEST["sede"]);
        
        $u->setTipoDoc($_REQUEST["td"]);
        $u->setDocumento($_REQUEST["documento"]);
        
        $u->setFreg("NOW()");
        $u->setUId($_SESSION["uid"]);
        $u->setFmod("0000-00-00 00:00:00");
       	$u->setEstado(1);
                       
                        
        if($u->GuardarUsuario()){
            $msj = "<div id='alertzone' style='background-color:#c3d5fd;vertical-align:bottom;'> <img src='images/png/check.png' /> Se registro correctamente!. </div>";
        }else{
            $msj = "<div id='alertzone' style='background-color:#fe9a9e;vertical-align:bottom;'> <img src='images/png/error.png' /> Ocurrio un error al registrar. </div>";
        }
        $this->listaUsuario($msj);
        
    }
    
    function listaUsuario($msj=false){        
        include_once 'modelo/modelo.usuario.php';
        include_once 'vista/vista.usuario.php';
        
        include_once 'controlador/controlador.tipousuario.php';
        $ctu = new ControladorTipoUsuario();
        $cbu = $ctu->getFunction('combo');
        
        
        include_once 'controlador/controlador.sede.php';
        $cs = new ControladorSede();
        $cbs = $cs->getFunction('combo');
        
        include_once 'recursos/funciones.php';
        $arrEstado = getEstado();
        
        $arrCb = array('tu'=>$cbu, 'i'=>$cbi, 's'=>$cbs, 'estado'=>$arrEstado);
        
        $u = new usuario();
        $dataTotal = $u->getListadoUsuario(" count(*) ", false,  true);
        $dataTotal = $dataTotal[0][0]; 
        $data = $u->getListadoUsuario();
        if(is_null($data)){
            $msj = "<div id='alertzone' style='background-color:#fe9a9e;vertical-align:bottom;'> <img src='images/png/error.png' /> No existen coincidencias. </div>";
        }
        listadousuario($data, $msj, $dataTotal, $arrCb);
        
    }
    
    
}

?>
